/*
 * BinaryQuery.h
 *  BinaryQuery继承了纯虚函数eval，所以它也是一个抽象基类
 *  Created on: 2020年12月13日
 *      Author: san
 */

#ifndef BINARYQUERY_H_
#define BINARYQUERY_H_

#include "Querybase.h"
#include "Query.h"

class BinaryQuery: public Query_base {
protected:
	BinaryQuery(const Query &l, const Query &r, std::string s) :
		lhs(l), rhs(r), opSym(s) {}
	// 抽象类： BinaryQuery 不定义 eval
	std::string rep() const override { std::cout << "BinaryQuery::rep()" << std::endl; return "(" + lhs.rep() + " " + opSym + " " + rhs.rep() + ")";}

	Query lhs, rhs;  // 左侧和右侧运算对象
	std::string opSym;  // 运算符的名字
};

#endif /* BINARYQUERY_H_ */
